home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d12 / asm_msc1.arc / EX_PROG.ASM < prev    next >
Assembly Source File  |  1988-11-20  |  2KB  |  49 lines

  1. TITLE  Example Program (EX_PROG.ASM)
  2.           PAGE      ,132
  3. STACK     SEGMENT   PARA STACK 'STACK'
  4.           DB        64 DUP('STACK   ')
  5. STACK     ENDS
  6. OUR_DATA  SEGMENT   PARA 'DATA'
  7. SOURCE    DB        10,20,30,40      ;This table will be copied into
  8. DEST      DB        4 DUP(?)         ; this table, in reverse order
  9. OUR_DATA  ENDS
  10. SUBTTL  Here is the main program.
  11.           PAGE
  12. OUR_CODE  SEGMENT   PARA 'CODE'
  13. OUR_PROG  PROC      FAR
  14.           ASSUME    CS:OUR_CODE,DS:OUR_DATA,SS:STACK
  15. ;
  16. ;  Set up the stack to contain the proper values so this
  17. ;  program can return to DEBUG.
  18. ;
  19.           PUSH      DS               ;Put return seg. addr. on stack
  20.           MOV       AX,0             ;Clear a register
  21.           PUSH      AX               ;Put zero return addr. on stack
  22. ;
  23. ;  Initialize the data segment address.
  24. ;
  25.           MOV       AX,OUR_DATA      ;Initialize DS
  26.           MOV       DS,AX            
  27. ;
  28. ;  Initialize DEST with zeroes.
  29. ;
  30.           MOV       DEST,0           ;First byte
  31.           MOV       DEST+1,0         ;Second byte
  32.           MOV       DEST+2,0         ;Third byte
  33.           MOV       DEST+3,0         ;Fourth byte
  34. ;
  35. ;  Copy SOURCE table into DEST table, in reverse order.
  36. ;
  37.           MOV       AL,SOURCE        ;Copy first byte
  38.           MOV       DEST+3,AL       
  39.           MOV       AL,SOURCE+1      ;Copy second byte
  40.           MOV       DEST+2,AL
  41.           MOV       AL,SOURCE+2      ;Copy third byte
  42.           MOV       DEST+1,AL
  43.           MOV       AL,SOURCE+3      ;Copy fourth byte
  44.           MOV       DEST,AL
  45.           RET                        ;Far return to DEBUG
  46. OUR_PROG  ENDP
  47. OUR_CODE  ENDS
  48.          END       OUR_PROG
  49.